home *** CD-ROM | disk | FTP | other *** search
/ Acorn User: China / Acorn User China CD-ROM (UK) (Disc B) / Acorn User China CD-ROM (UK) (Disc B).bin / STUTTGART / FROMUTS / UNIXLIB37B / src_c_strspn < prev    next >
Encoding:
C/C++ Source or Header  |  1992-02-13  |  1.2 KB  |  78 lines

  1. #ifdef __STDC__
  2. static char sccs_id[] = "@(#) strspn.c 1.1 "__DATE__" HJR";
  3. #else
  4. static char sccs_id[] = "@(#) strspn.c 1.1 26/9/90 HJR";
  5. #endif
  6.  
  7. /* strspn.c (c) Copyright 1990 H.Rogers */
  8.  
  9. #ifndef __STDC__
  10. #include "sys/types.h"
  11. #endif
  12. #include <string.h>
  13.  
  14. #ifdef __STDC__
  15. size_t strspn(register const char *s1,register const char *s)
  16. #else
  17. size_t strspn(s1,s)
  18. register const char *s1;
  19. register const char *s;
  20. #endif
  21. {
  22. register int c1,c2;
  23. register const char *s2;
  24. register size_t n = 0;
  25.  
  26. while (c1 = *s1++)
  27.   {
  28.   s2 = s;
  29.   while ((c2 = *s2++) != c1) if (!c2) return(n);
  30.   n++;
  31.   }
  32.  
  33. return(n);
  34. }
  35.  
  36. #ifdef __STDC__
  37. size_t strcspn(register const char *s1,register const char *s)
  38. #else
  39. size_t strcspn(s1,s)
  40. register const char *s1;
  41. register const char *s;
  42. #endif
  43. {
  44. register int c1,c2;
  45. register const char *s2;
  46. register size_t n = 0;
  47.  
  48. while (c1 = *s1++)
  49.   {
  50.   s2 = s;
  51.   while (c2 = *s2++) if (c2 == c1) return(n);
  52.   n++;
  53.   }
  54.  
  55. return(n);
  56. }
  57.  
  58. #ifdef __STDC__
  59. char *strpbrk(register const char *s1,register const char *s)
  60. #else
  61. char *strpbrk(s1,s)
  62. register const char *s1;
  63. register const char *s;
  64. #endif
  65. {
  66. register int c1,c2;
  67. register const char *s2;
  68.  
  69. while (c1 = *s1)
  70.   {
  71.   s2 = s;
  72.   while (c2 = *s2++) if (c2 == c1) return((char *)s1);
  73.   s1++;
  74.   }
  75.  
  76. return(0);
  77. }
  78.